"""
单元测试是指在软件开发当中，针对软件的最小单位（函数、方法）进行正确性的检查测试。
pytest简介
pytest是一个非常成熟的python的单元框架，比unittest更灵活
pytest可以和selenium,requests,appium结合实现web自动化，接口自动化，app自动化
pytest可以实现测试用例的跳过及reruns失败用例重试。
pytest可以和allure生成非常美观的测试报告
pytest可以和Jekins持续集成
pytest有很多非常强大的插件，并且这些插件能够实现很多的实用的操作。

pytest
pytest-xdist 测试用例分布式执行，多CPU分发
pytest-ordering 用于改变测试用例的执行顺序
pytest-rerunfailures 用例失败后重跑
pytest-html (管理局成html格式的自动化测试报告)
allure-pytest 用于生成美观的测试报告

注意：

1、pytets执行测试用例
　　设计测试用例时候注意点（必须遵循的规则，否者不识别）：

　　　　1：.py测试文件必须以以test_ 开头或者 _test结尾
　　　　2：测试类必须以Test开头，并且不能有init方法-----测试类Test开头
　　　　3：测试方法必须以test_开头
　　　　4：断言必须使用assert

五、pytest测试用例的运行方式
1.主函数模型

(1)运行所有：pytest.main()
(2)指定模块：pytest.main([‘-vs’,’test_login.py’])
(3)指定目录：pytest.main([‘-vs’,’./interface_testcase’])
(4)通过nodeid指定用例运行：nodeid由模块名，分隔符，类名，方法名，函数名组成 
pytest.main([‘-vs’,’./interface_testcase/test_interface.py::test_04_func’])
pytest.main([‘-vs’,’./interface_testcase/test_interface.py::Testinterface::test_03_zhiliao’])
pytest.main(['-vs', '--html=./report/report.html'])
2.命令行模式

(1)运行所有：pytest
(2)指定模块：pytest -vs test_login.py
(3)指定目录：pytest -vs ./interface_testcase
(4)通过nodeid指定用例运行：nodeid由模块名，分隔符，类名，方法名，函数名组成 
  pytest -vs ./interface_testcase/test_interface.py::test_04_func
参数详解：

-s：表示输出调试信息，包括 print打印的信息
-v：显示更详细的信息
-vs：这两个参数一起用
-n ：支持多线程或者分布式运行测试用例
        如：pytest -vs ./testcase/test_login.py -n 2
--reruns NUM ：失败用例重跑
-x：表示只要有一个用例报错，那么测试停止
--maxfail=2  出现两个用例失败就停止
-k ：根据测试用例的部分字符串指定测试用例
        如：pytest -vs ./testcase -k “ao”
--html ./report/report.html ：生成html的测试报告





"""































